'\" t
.TH "INTEGRITYTAB" "5" "" "systemd 256.7" "integritytab"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
integritytab \- Configuration for integrity block devices
.SH "SYNOPSIS"
.PP
/etc/integritytab
.SH "DESCRIPTION"
.PP
The
/etc/integritytab
file describes integrity protected block devices that are set up during system boot\&.
.PP
Empty lines and lines starting with the
"#"
character are ignored\&. Each of the remaining lines describes one verity integrity protected block device\&. Fields are delimited by white space\&.
.PP
Each line is in the form
.sp
.if n \{\
.RS 4
.\}
.nf
\fIvolume\-name\fR \fIblock\-device\fR
    \fI[keyfile|\-]\fR \fI[options|\-]\fR
.fi
.if n \{\
.RE
.\}
.sp
The first two fields are mandatory, the remaining two are optional and only required if user specified non\-default options during integrity format\&.
.PP
The first field contains the name of the resulting integrity volume; its block device is set up below
/dev/mapper/\&.
.PP
The second field contains a path to the underlying block device, or a specification of a block device via
"UUID="
followed by the UUID,
"PARTUUID="
followed by the partition UUID,
"LABEL="
followed by the label,
"PARTLABEL="
followed by the partition label\&.
.PP
The third field if present contains an absolute filename path to a key file or a
"\-"
to specify none\&. When the filename is present, the "integrity\-algorithm" defaults to
"hmac\-sha256"
with the key length derived from the number of bytes in the key file\&. At this time the only supported integrity algorithm when using key file is hmac\-sha256\&. The maximum size of the key file is 4096 bytes\&.
.PP
The fourth field, if present, is a comma\-delimited list of options or a
"\-"
to specify none\&. The following options are recognized:
.PP
\fBallow\-discards\fR
.RS 4
Allow the use of discard (TRIM) requests for the device\&. This option is available since the Linux kernel version 5\&.7\&.
.sp
Added in version 250\&.
.RE
.PP
\fBmode=(journal|bitmap|direct)\fR
.RS 4
Enable journaled, bitmapped or direct (passthrough) mode\&. Journaled mode is the default when this option is not specified\&. It provides safety against crashes, but can be slow because all data has to be written twice\&. Bitmap mode is more efficient since it requires only a single write, but it is less reliable because if data corruption happens when the machine crashes, it might not be detected\&. Direct mode disables the journal and the bitmap\&. Corresponds to the "direct writes" mode documented in
\m[blue]\fBthe dm\-integrity documentation\fR\m[]\&\s-2\u[1]\d\s+2\&. Note that without a journal, if there is a crash, it is possible that the integrity tags and data will not match\&. If used, the journal\-* options below will have no effect if passed\&.
.sp
Added in version 254\&.
.RE
.PP
\fBjournal\-watermark=[0\&.\&.100]%\fR
.RS 4
Journal watermark in percent\&. When the journal percentage exceeds this watermark, the journal flush will be started\&. Setting a value of "0%" uses default value\&.
.sp
Added in version 250\&.
.RE
.PP
\fBjournal\-commit\-time=[0\&.\&.N]\fR
.RS 4
Commit time in milliseconds\&. When this time passes (and no explicit flush operation was issued), the journal is written\&. Setting a value of zero uses default value\&.
.sp
Added in version 250\&.
.RE
.PP
\fBdata\-device=/dev/disk/by\-\&.\&.\&.\fR
.RS 4
Specify a separate block device that contains existing data\&. The second field specified in the integritytab for block device then will contain calculated integrity tags and journal for data\-device, but not the end user data\&.
.sp
Added in version 250\&.
.RE
.PP
\fBintegrity\-algorithm=[crc32c|crc32|xxhash64|sha1|sha256|hmac\-sha256]\fR
.RS 4
The algorithm used for integrity checking\&. The default is crc32c\&. Must match option used during format\&.
.sp
Added in version 250\&.
.RE
.PP
At early boot and when the system manager configuration is reloaded, this file is translated into native systemd units by
\fBsystemd-integritysetup-generator\fR(8)\&.
.SH "EXAMPLES"
.PP
\fBExample\ \&1.\ \&/etc/integritytab\fR
.PP
Set up two integrity protected block devices\&.
.sp
.if n \{\
.RS 4
.\}
.nf
home PARTUUID=4973d0b8\-1b15\-c449\-96ec\-94bab7f6a7b8 \- journal\-commit\-time=10,allow\-discards,journal\-watermark=55%
data PARTUUID=5d4b1808\-be76\-774d\-88af\-03c4c3a41761 \- allow\-discards
.fi
.if n \{\
.RE
.\}
.PP
\fBExample\ \&2.\ \&/etc/integritytab\fR
.PP
Set up 1 integrity protected block device using defaults
.sp
.if n \{\
.RS 4
.\}
.nf
home PARTUUID=4973d0b8\-1b15\-c449\-96ec\-94bab7f6a7b8
.fi
.if n \{\
.RE
.\}
.PP
\fBExample\ \&3.\ \&/etc/integritytab\fR
.PP
Set up 1 integrity device using existing data block device which contains user data
.sp
.if n \{\
.RS 4
.\}
.nf
home PARTUUID=4973d0b8\-1b15\-c449\-96ec\-94bab7f6a7b8 \- data\-device=/dev/disk/by\-uuid/9276d9c0\-d4e3\-4297\-b4ff\-3307cd0d092f
.fi
.if n \{\
.RE
.\}
.PP
\fBExample\ \&4.\ \&/etc/integritytab\fR
.PP
Set up 1 integrity device using a HMAC key file using defaults
.sp
.if n \{\
.RS 4
.\}
.nf
home PARTUUID=4973d0b8\-1b15\-c449\-96ec\-94bab7f6a7b8 /etc/hmac\&.key
.fi
.if n \{\
.RE
.\}
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1), \fBsystemd-integritysetup@.service\fR(8), \fBsystemd-integritysetup-generator\fR(8), \fBintegritysetup\fR(8)
.SH "NOTES"
.IP " 1." 4
the dm-integrity documentation
.RS 4
\%https://docs.kernel.org/admin-guide/device-mapper/dm-integrity.html
.RE
